gusucode.com > 支持向量机工具箱 - LIBSVM OSU_SVM LS_SVM源码程序 > 支持向量机工具箱 - LIBSVM OSU_SVM LS_SVM\Regression_LS_SVMlab.m
% 支持向量机用于函数拟合 - 必须选择最优参数 gam,sig2 % 工具箱:LS_SVMlab % 使用平台:Matlab6.5 % 作者:陆振波,海军工程大学 % 欢迎同行来信交流与合作,更多文章与程序下载请访问我的个人主页 % 电子邮件:luzhenbo@sina.com % 个人主页:luzhenbo.88uu.com.cn %clc clear close all %--------------------------------------------------- % 产生训练样本与测试样本 n1 = 1:2:200; x1 = sin(n1*0.1); n2 = 2:2:200; x2 = sin(n2*0.1); xn_train = n1; % 训练样本,每一列为一个样本 dn_train = x1; % 训练目标,行向量 xn_test = n2; % 测试样本,每一列为一个样本 dn_test = x2; % 测试目标,行向量 %--------------------------------------------------- % 参数设置 X = xn_train'; Y = dn_train'; Xt = xn_test'; Yt = dn_test'; type = 'f'; kernel = 'RBF_kernel'; gam = 51678.0989; % Regularization parameter sig2 = 0.135589409; % Kernel parameter (bandwidth in the case of the 'RBF_kernel' model = initlssvm(X,Y,type,gam,sig2,kernel); % 模型初始化 %--------------------------------------------------- % 交叉验证优化参数 % StartingValues = [1 0.01;1e+4 10]; % optfun = 'gridsearch'; % optargs = {}; % costfun = 'crossvalidate'; % costargs = {X,Y,2}; % model = tunelssvm(model,StartingValues,optfun,optargs,costfun,costargs); % 模型参数优化 %--------------------------------------------------- % 训练与测试 model = trainlssvm(model); % 训练 err1 = simlssvm(model,X)-Y; % 回归 err_mse1 = mean(err1.^2) Yd = simlssvm(model,Xt); % 回归 err2 = Yd - Yt; err_mse2 = mean(err2.^2) %--------------------------------------------------- % 结果作图 plot(1:length(Yt),Yt,'r+:',1:length(Yd),Yd,'bo:') title('+为真实值,o为预测值')